package com.digua.atools.tools;

import android.content.Context;

import androidx.annotation.ColorRes;
import androidx.annotation.StringRes;

/**
 * @author:digua
 * @dat:2021/10/9
 * @description: 资源工具
 */
public class ResUtil {

    /**
     * 获取color资源
     *
     * @param context 上下文
     * @param resId   资源ID
     * @return
     */
    public static int color(Context context, @ColorRes int resId) {
        return context.getResources().getColor(resId);
    }

    /**
     * 获取String资源
     *
     * @param context 上下文
     * @param resId   资源ID
     * @return
     */
    public static String str(Context context, @StringRes int resId) {
        return context.getResources().getString(resId);
    }

    /**
     * 获取String资源
     *
     * @param context 上下文
     * @param resId   资源ID
     * @param params  参数
     * @return
     */
    public static String strByParams(Context context, @StringRes int resId, Object... params) {
        return ArrUtil.isBlank(params) ? str(context, resId) : com.digua.atools.tools.StrUtil.format(str(context, resId), params);
    }

    /**
     * 获取String资源
     *
     * @param context 上下文
     * @param resId   资源ID
     * @param params  参数
     * @return
     */
    public static String strByParamArr(Context context, @StringRes int resId, Object[] params) {
        return ArrUtil.isBlank(params) ? str(context, resId) : com.digua.atools.tools.StrUtil.format(str(context, resId), params);
    }

    /**
     * 获取String资源
     *
     * @param context 上下文
     * @param resIds  资源IDs
     * @return
     */
    public static String str(Context context, @StringRes int... resIds) {
        String res = "";
        if (resIds == null || resIds.length <= 0) {
            return res;
        }
        for (int resId : resIds) {
            try {
                res += str(context, resId);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return res;
    }

    /**
     * 获取String资源(原三元表达式替换方式)
     *
     * @param context      上下文
     * @param bool         bool值
     * @param isTrueResId  当bool为true时返回此值对应的string
     * @param isFalseResId 当bool为false时返回此值对应的string
     * @return
     */
    public static String str(Context context, boolean bool, @StringRes int isTrueResId, @StringRes int isFalseResId) {
        return bool ? str(context, isTrueResId) : str(context, isFalseResId);
    }
}
